As an increasing number of applications and services are being made available over networks such as the Internet, an increasing number of content, application, and/or service providers are turning to technologies such as remote resource sharing and cloud computing. Cloud computing, in general, is an approach to providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is dynamically scalable to meet the needs of the services at any given time. A user or customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software to provide access to these resources.
In some environments, multiple users can share resources such as remote servers and data repositories, wherein the users can concurrently send multiple requests to be executed against the same set of resources. Since there typically is a limited amount of capacity for each type of resource, conventional systems enable users to obtain dedicated and/or reserved amounts of capacity for at least a specified period of time. Such approaches are expensive and often result in unused excess capacity, as the user typically must purchase enough resource capacity to handle periods of peak usage. In many cases, the user must still pay for this excess dedicated capacity. Certain systems enable a user to sell at least a portion of the resource capacity that has been provisioned for that user to one or more other users, but such an approach generally enables any appropriate users to obtain that capacity. These other users may not be known or trusted by the original user for whom the resources were provisioned, which can potentially expose those resources to misuse by an unknown user.